﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WorldSimulator.PhysicsEngine;

namespace WorldSimulator.RenderingEngine
{
	public interface IRenderingEngine
	{
		/// <summary>
		/// Registers the objects for rendering
		/// </summary>
		/// <param name="objects">Objects to register</param>
		void RegisterObjects(IEnumerable<IPhysicalObject> objects);

		/// <summary>
		/// Unregisters the objects for rendering
		/// </summary>
		/// <param name="objects">Objects to unregister</param>
		void UnregisterObjects(IEnumerable<IPhysicalObject> objects);

		/// <summary>
		/// Registers an object for rendering
		/// </summary>
		/// <param name="obj">Physical object</param>
		void RegisterObject(IPhysicalObject obj);

		/// <summary>
		/// Unregisters an object for rendering
		/// </summary>
		/// <param name="obj">Physical object</param>
		void UnregisterObject(IPhysicalObject obj);

		/// <summary>
		/// Renders a frame
		/// </summary>
		void Render();
	}
}
